CryptOpt: Verified Compilation with Randomized Program Search for Cryptographic Primitives
نویسندگان
چکیده
Most software domains rely on compilers to translate high-level code multiple different machine languages, with performance not too much worse than what developers would have the patience write directly in assembly language. However, cryptography has been an exception, where many performance-critical routines written (sometimes through metaprogramming layers). Some past work shown how do formal verification of that assembly, and other generate C automatically along proof, but consequent penalties vs. best- known assembly. We present CryptOpt, first compilation pipeline specializes cryptographic functional programs into significantly faster GCC or Clang produce, mechanized proof (in Coq) whose final theorem statement mentions little beyond input program operational semantics x86-64 On optimization side, we apply randomized search space programs, repeated automatic benchmarking target CPUs. formal-verification connect Fiat Cryptography framework (which translates C-like IR code) extend it a new formally verified program-equivalence checker, incorporating modest subset features SMT solvers symbolic-execution engines. The overall prototype is quite practical, e.g. producing fastest-known implementations finite-field arithmetic for both Curve25519 (part TLS standard) Bitcoin elliptic curve secp256k1 Intel 12
منابع مشابه
On randomized cryptographic primitives
The paper investigates the extent to which a public source of random bits can be used to obtain some basic cryptographic primitives: hard functions, pseudo-random generators and one-way functions. Strong randomized hard functions and one-way functions are exhibited. The existence of a randomized pseudo-random generators with analogous safety parameters remains open, but a weaker variant is pres...
متن کاملLightweight 4x4 MDS Matrices for Hardware-Oriented Cryptographic Primitives
Linear diffusion layer is an important part of lightweight block ciphers and hash functions. This paper presents an efficient class of lightweight 4x4 MDS matrices such that the implementation cost of them and their corresponding inverses are equal. The main target of the paper is hardware oriented cryptographic primitives and the implementation cost is measured in terms of the required number ...
متن کاملCryptographic Primitives
A symmetric or private-key cipher is one in which knowledge of the encryption key is explicitly or implicitly equivalent to knowing the decryption key. An asymmetric or public-key cipher is one in which the encryption key is effectively public knowledge, without giving any useful information about the decryption key. Until 30 years ago all ciphers were private-key. The very possibility of publi...
متن کاملVerified Cryptographic Implementations for TLS1
We intend to narrow the gap between concrete implementations of cryptographic protocols and their verified models. We develop and verify a small functional implementation of the Transport Layer Security protocol (TLS 1.0). We make use of the same executable code for interoperability testing against mainstream implementations, for automated symbolic cryptographic verification, and for automated ...
متن کاملRobust Combiners for Cryptographic Primitives
In cryptography, we do not know which computational assumptions are the most secure to rely on. Robust combiners attempt to solve this problem. Given several implementations of a certain primitive, e.g., of a commitment scheme, a combiner merges them into a new implementation that is secure if a minimum number of the input implementations are secure. A (k;n)-robust combiner merges n implementat...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Proceedings of the ACM on programming languages
سال: 2023
ISSN: ['2475-1421']
DOI: https://doi.org/10.1145/3591272